package cs.uns.edu.ar.aygps.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;

@SuppressWarnings ( {"serial"})


public class Reserva implements Serializable {
	
	private int numeroReserva;
	
	private Cliente cliente;
	
	private Date fechaIngreso;
	
	private Date fechaEgreso;
	
	private Tarjeta tarjeta;
	
	private int ocupantes;
	
	private Collection<Habitacion> habitacion;

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Date getFechaEgreso() {
		return fechaEgreso;
	}

	public void setFechaEgreso(Date fechaEgreso) {
		this.fechaEgreso = fechaEgreso;
	}

	public Date getFechaIngreso() {
		return fechaIngreso;
	}

	public void setFechaIngreso(Date fechaIngreso) {
		this.fechaIngreso = fechaIngreso;
	}

	public int getNumeroReserva() {
		return numeroReserva;
	}

	public void setNumeroReserva(int numeroReserva) {
		this.numeroReserva = numeroReserva;
	}

	public Collection<Habitacion> getHabitacion() {
		return habitacion;
	}

	public void setHabitacion(Collection<Habitacion> habitacion) {
		this.habitacion = habitacion;
	}

	public String getHabitacionesAsString() {
		Iterator iterator = habitacion.iterator();
		StringBuffer habs = new StringBuffer("Habitaciones: ");
		while (iterator.hasNext()) {
			Habitacion element = (Habitacion) iterator.next();
			habs.append(element.getNumeroHabitacion());
			habs.append("/");
		}
		
		return habs.toString();
	}
	
	public String toString(){ 	
		StringBuffer b = new StringBuffer("Numero de Reserva: " +numeroReserva);
		b.append(" Ingreso: " + getFechaIngreso().toString());
		b.append(" Egreso: " + getFechaEgreso().toString());
		b.append(getHabitacionesAsString());
		return b.toString();
	}

	public Integer[] getHabitacionAsIntArray() {
		Iterator iterator = habitacion.iterator();
		ArrayList<Integer> habs = new ArrayList<Integer>();
		while (iterator.hasNext()) {
			Habitacion element = (Habitacion) iterator.next();
			habs.add(element.getNumeroHabitacion());
		}
		
		return habs.toArray(new Integer[0]);
	}

	public Tarjeta getTarjeta() {
		return tarjeta;
	}

	public void setTarjeta(Tarjeta tarjeta) {
		this.tarjeta = tarjeta;
	}

	public int getOcupantes() {
		return ocupantes;
	}

	public void setOcupantes(int ocupantes) {
		this.ocupantes = ocupantes;
	}
	
	
}